<?php

// Filtrerar $pics, tar bort alla filnamn som börjar på tn_
function ditchtn($pics,$thumbname){
	//print_r($pics);
	
	foreach($pics as $item){
		if (!preg_match("/^".$thumbname."/",$item)){
			$tmparr[]=$item;
		}
	} 
	
	if (empty($tmparr)) {
		$tmparr = 0;
	}
	
	return $tmparr; 

}


function directory($dir,$filters){
	
	//öppna vald mapp
	$handle=opendir($dir);

	$files=array();
	
	// Om mappens bilder har de tillåtna filformaten, gör följande..
	if ($filters == "all"){
		
		// Sålänge det finns bilder, lägg till dem i arrayen $files
		while(($file = readdir($handle))!==false){
			$files[] = $file;
		}
	}
	
	// Om det finns filer i mappen som har otillåtna filändelser, hoppa över dem.
	if ($filters != "all"){
		
		$filters=explode(",",$filters);
		//print_r($filters);
								
		while (($file = readdir($handle))!==false){
		
			//echo $file;
									
			for ($f=0 ;$f < count($filters); $f++):
				
				$system=explode(".",$file);
				//echo $system[1];
				
								
				if ($system[1] == $filters[$f]){
					//echo $f;
					$files[] = $file;
					
				}	
			
			endfor;
		}
	}
	
	// stäng mappen
	closedir($handle);
	//returnera arrayen $files
	return $files;
}



function createthumb($oldFile, $newFile, $new_wh) { // assume the new thumbnail is square
	
	//skapa en array för varje bild, system[0] == bildens namn, system[1] == filändelsen.
	$system=explode(".",$oldFile);
	
	//skapa en kopia av bilden beroende på vilket filändelsen är.

	if (preg_match("/JPG|JPEG|jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg($oldFile);}
	if (preg_match("/png|PNG/",$system[1])){$src_img=imagecreatefrompng($oldFile);}

	
	// definiera bildens storlek, x- och y-värden
	
	$old_x=imageSX($src_img);
	$old_y=imageSY($src_img);
	
	// Om bildens bredd är störren än höjden, så är den nya bredden den vi skickar med in i funktionen
	if ($old_x > $old_y){
	
	/* Höjden på den nya bilden blir då höjden vi skickar med/den ursprungliga bredden.
		Vi får då höjdens procentuella minskning i förhållande till bredden och multiplicerar
		med den ursprungliga höjden för att få den nya höjden.
	*/
		$thumb_h=$new_wh;
		$thumb_w=$old_x*($new_wh/$old_y);
	}
	
	// tvärtom om bildens höjd är större än bredd.
	if ($old_x < $old_y) {
	
		$thumb_h=$old_y*($new_wh/$old_x);
		$thumb_w=$new_wh;
	}
	
	// om bildens dimensioner är lika, så är bildens nya storlek de värden (h,b) vi skickar med.
	if ($old_x == $old_y){ 
		$thumb_w=$new_wh;
		$thumb_h=$new_wh;
	}
	
	// skapar en bildyta på 150x200px (bxh). Tilldelar värdet till $dst_img
	$dst_img=ImageCreateTrueColor($new_wh,$new_wh);
	
	// Tar den förminskade urspringsbilden och placerar den enligt x-/y-coord i den nya bildytan.
	imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h, $old_x, $old_y);
	
	// Om det är en png jpg jpeg JPG JPEG -fil spara den nya bilden
	if (preg_match("/png|PNG/",$system[1])) {
		imagepng($dst_img,$newFile); 
	} 
	
	elseif (preg_match("/jpg|jpeg|JPG|JPEG/",$system[1])) {
		imagejpeg($dst_img,$newFile); 
	}
	
	imagedestroy($dst_img); 
	imagedestroy($src_img); 
}

	

function login(){
	
	global $username;
	global $dbc;
	
	if(isset($_POST['submitLogin'])){
	
		$username = $_POST['username'];
		$password = $_POST['password'];
		
		$query = "SELECT * FROM player
				  WHERE username = '$username'
				  AND password = md5('$password')";
				  
		$result = mysqli_query($dbc, $query);
		
		if (mysqli_num_rows($result) == 1){	
			
			$row = mysqli_fetch_assoc($result);
			
			$_SESSION['id'] =  $row['id'];
			$_SESSION['username'] = $row['username'];
			
			return true;
					
		} elseif (empty($username) || empty($password)){
			echo '<p class="errorLogin">Du måste fylla i alla fält</p>';
		} 
		
		else {
			echo '<p class="errorLogin">fel lösenord</p>';
		}
	}
}


function registerUser() {

	global $dbc;
		
	$username = $_POST['username'];
	$password = $_POST['password'];
	$confirmPassword = $_POST['confirmPassword'];
	$firstName = $_POST['firstName'];
	$lastName = $_POST['lastName'];
	$email = $_POST['email'];
	
	$query = "INSERT INTO player 
			(firstname, lastname, email, password, username) 
			VALUES('$firstName', '$lastName', '$email', md5('$password'), '$username')";
			
	mysqli_query($dbc, $query);
}


function fileUpload() {
	
	global $dbc;
	$imagefolder = 'images/gameimages/' . $_SESSION['id'];

	
	if (!is_dir($imagefolder)){
		mkdir($imagefolder);
	} 
	
	$hasimages = false;
	
	while (list($key,$nameValue) = each($_FILES['images']['name'])) {
		

		$find = array("_", " ");
		$replace = "";
		$nameValue = str_replace($find, $replace, $nameValue);
		
		//echo $_FILES['images']['name'];
		if(!empty($nameValue)){   // this will check if any blank field is entered
			$hasimages = true;
			$target = "images/gameimages/" . $_SESSION['id'] . "/" . $nameValue;   // upload directory path is set
			
			$player_id = $_SESSION['id'];
			$imageName = $_FILES['images']['name'];
			$imageType = $_FILES['images']['type'];
						
			for ( $i=0; $i < count($imageType); $i++){
			
				$myimagesdir = 'images/gameimages/' . $_SESSION['id'];
				$myimg = glob($myimagesdir . "/*.*");
				
				if (count($myimg) < 15) {

				
					if (($imageType[$i] == 'image/jpg') || ($imageType[$i] == 'image/jpeg') || ($imageType[$i] == 'image/png')) {  
						move_uploaded_file($_FILES['images']['tmp_name'][$key], $target);
						
						$query = "SELECT * FROM image 
						WHERE name = 'tn_$imageName[$i]'";
						$result = mysqli_query($dbc, $query);
						
						if (mysqli_num_rows($result) == 0) {
						
							$query = "INSERT INTO image
									  (name, player_id)
									  VALUES('tn_$imageName[$i]', 
									  '$player_id')";
							
							mysqli_query($dbc, $query);	
						}
					}
					else {
						 @unlink($_FILES['images']['tmp_name']);
					}
				}
			}
		}
	}   	

	if ($hasimages == false){
		
		echo '<img id="errorbkg" src="images/siteimages/startgamebkg.png">';
		echo '<div id="errortext">';
		echo '<p>Du måste ladda upp minst en bild, <a class="pinkText" href="">gå tillbaka.</a></p>';
		echo '</div>';
		exit();
	}
}


function processImages() {
	
	$imagefolder = 'images/gameimages/' . $_SESSION['id'];

	$pics = directory($imagefolder,"jpg,jpeg,JPG,JPEG,png,PNG");
	
	$pics = ditchtn($pics,"tn_");

	// Om arrayen innehåller något, gör följande
	if ($pics[0]!="") {
		

		// För varje element i arrayen $pics anropa funktionen createthumb.
		// Anropa createthumb för varje bild, skicka med filnamn och hur stor den nya bilden ska vara.
		foreach ($pics as $p){
			//Det fungerade oxå med att byta filmamenet här. Men det är kanske mer klokt att göra det redan i filuppladdningen. 
			//$pnew = str_replace("_","",$p);
			//rename($imagefolder . "/" . $p, $imagefolder . "/" . $pnew);
			//echo $p;
			createthumb($imagefolder . "/" . $p, $imagefolder . "/" . "tn_".$p,75);

			//radera den ursprungliga bilden.
			unlink($imagefolder . "/" . $p);										
		}
	}
}


function printImages() {
	
	$defaultdir = 'images/gameimages/defaultimages';
	$myimagesdir = 'images/gameimages/' . $_SESSION['id'];
	//bytte "/*.jpg" till "/*.*" så att den skriver alla filer som finns i mappen inte bara de som har filändelsen .jpg
	$myimg = glob($myimagesdir . "/*.*"); 
	$defaultimg = glob($defaultdir . "/*.*"); 

	echo '<div id="imageContainer">';
	
	echo '<div id="activeImages" class="dropzone1 ui-widget-content" >';
	echo '</div>';
	
	echo '<div id="defaultImages" class="dropzone2">';	
	foreach ($defaultimg as $defaultimg) {
		echo '<div class="images">';
		echo '<img class="imgbox draggable default ui-widget-content" src="' . $defaultimg . '" alt="random image" />';
		echo '</div>';
	}
	
	echo '</div>';
	
	echo '<div id="myImages" class="dropzone3">';
	foreach ($myimg as $myimg) { 
		echo '<div class="images">';
		echo '<img class="imgbox draggable myimg ui-widget-content" src="' . $myimg . '" alt="random image" />';
		echo '</div>';
	}
	
	echo '</div>';
	echo '</div>';
	
}

function printBgImages() {
	
	$patterns = 'images/gameimages/patterns';
	$patternimgs = glob($patterns . "/*.*"); 
	
	echo '<div id="imageContainer">';
	echo '<form name="selectBg" method="post" action="index.php?page#">';
	foreach ($patternimgs as $patternimg) {
		echo '<div class="images" text-align="center">';
		echo '<img class="imgbox" src="' . $patternimg . '" alt="pattern image" /><br />';
		echo '<input type="radio" name="bgimage" value="' . $patternimg . '" />';
		echo '</div>';
		
	}
	echo '<div id="continue">';
	echo '<input type="submit" class="fancy_button">
			<span style="background-color: #d83996;">Gå vidare</span></a>
	</div>';
	
	echo '</form>';
	echo '</div>';
	
}


function printUploadPage(){

	$output = <<<HTMLTEXT
	
	<img id="uploadimgbkg" src="images/siteimages/uploadbkg.png">
	
	<div id="defaultimgbtn">
		<a id="defaultImgBtn" class="fancy_button defaultimgbtn"
		href="index.php?page=uploadimg&defaultimgbtn=images">
		<span style="background-color: #d83996;">Använd förinställda bilder</span></a>
	</div>
	
HTMLTEXT;

	echo $output;
}


function printImageUploadForm(){
	
	$max_no_img=15; // Maximum number of images to be uploaded in myimages folder;
	$myimagesdir = 'images/gameimages/' . $_SESSION['id'];
	$no_of_img = nr_of_files($myimagesdir);
	$no_of_uploads = $max_no_img - $no_of_img; 
	

	 if($no_of_uploads > 0){ 
		echo '<div id="uploadText">
			<p>Om du vill använda egna bilder i spelet så kan du ladda 
			upp dem här.<br />Endast bilder med jpg- och png-format är tillåtna.</p>
			</div>';
		echo '<div id="uploadform">';
		echo '<h3 id="formheader" style="color:black; font-size:14px">Ladda upp bilder</h3><br />';
		echo "<form method='post' action='' enctype='multipart/form-data'>";
		if($no_of_uploads>5) $no_of_uploads = 5;
		for($i=0; $i<$no_of_uploads; $i++){
			echo "<input class='uploadInput' type=file name='images[]' /><br />";
		}
	
		echo "<br />";
		echo "<input type='submit' name='uploadImg' value='Ladda upp' id='submitImg' />";
		echo "</form>";
		echo '</div>';		
	}
	else {
	echo '<div id="imgExceedText">';
	echo '<h3 style="color:black; font-size:16px">Du har överskridit det maximala antalet uppladdningar. <br />Ta bort bilder först så att du kan ladda upp fler </h3><br />';
	echo '</div>';		
	}  
	
}


function printLoginForm() {

	$output = <<<HTMLTEXT

	<div id="loginForm">
		<form method="post" action="index.php?page=home">
			<label for="user">Användarnamn:</label>
			<input type="text" name="username" value="" /><br />
			<label for="password">Lösenord:</label>
			<input type="password" name="password" value="" />
			<label for="submit"></label>
			<input type="submit" name="submitLogin" value="Logga in" /><br />
		</form>
	
		<p class="whiteText"><a class="whiteText" href="index.php?page=register">
		Registrera användare?</a><br />Glömt lösenordet?</p>
	</div>

HTMLTEXT;

	echo $output;
}
	
	
function printMainPage() {
	
	$output = <<<HTMLTEXT
	
	<div id="startgamebkg">
		<img src="images/siteimages/startgamebkg.png" />
	</div>

	<div id="startNewGameBtn">
		<a class="fancy_button" href="index.php?page=uploadimg">
		<span style="background-color: #d83996;">Skapa nytt spel</span></a>
	</div>
	
	<div id="joinGameBtn">
		<a class="fancy_button" href="#">
		<span style="background-color: #d83996;">Hoppa in i pågående spel</span></a>
	</div>

HTMLTEXT;

	echo $output;
}




function printImagePage() {

	$output= <<<HTMLTEXT

	<div id="instructions">
		<img src="images/siteimages/choosenpicbkg.png">
	</div>
	
	<p id="choosenpictext">Välj vilka bilder du vill använda i spelet, och dra dem till rutan<br />
	som heter "Aktiva bilder i spelet". Du kan använda både dina<br />
	egna bilder och de som är förinställda</p>
	
	<h3 class="thumbHeader_l">Aktiva bilder i spelet</h3>
	<h3 class="thumbHeader_c">Förinställda bilder</h3>
	<h3 class="thumbHeader_r">Dina egna bilder</h3>
	
	<div id="thumbnailbkgContainer">
	<div id="thumbnails_l"></div>
	<div id="thumbnails_c"></div>
	<div id="thumbnails_r"></div>
	
	</div>
	
		<div id="startgame">
		<a class="fancy_button" href="index.php?page=selectbg">
		<span style="background-color: #d83996;">Gå vidare</span></a>
		</div>
	
		<a class="fancy_button uploadmorepics" href="index.php?page=uploadimg">
		<span style="background-color: #d83996;">Ladda upp fler bilder</span></a>
	
		<img id="trash" class="deleteArea ui-widget-content" src="images/siteimages/trash.png" />
	
	
HTMLTEXT;

	echo $output;
}

function printBackgroundPage() {

	$output= <<<HTMLTEXT

	<div id="instructions">
		<img src="images/siteimages/choosenpicbkg.png">
	</div>
	
	<p id="choosenpictext">Välj baksidan på brickorna du ska spela med.<br /></p>
	
	<div id="thumbnailbkgContainer">
	<div id="thumbnails_bg">
	</div>
	
	</div>
	
		<!-- <div id="continue">
		<a class="fancy_button" href="index.php?page#">
		<span style="background-color: #d83996;">Gå vidare</span></a>
		</div> -->
	
HTMLTEXT;

	echo $output;
}


function printRegisterForm(){
	$output = <<<HTMLTEXT
	<div id="registrationbkg">
		<img src="images/siteimages/registrationbkg.png" />
	</div>
	<div id="registerForm">
		<h3>Registrera användare</h3>
		<form method="post" action="">
			<label id="label" for="username">Användarnamn:</label>
			<input type="text" name="username" value="" /><br />
			<label id="label" for="password">Lösenord:</label>
			<input type="password" name="password" value="" /><br />
			<label for="password">Bekräfta lösenord:</label><br />
			<input type="password" name="confirmPassword" value="" />
			<label id="label" for="firstname">Förnamn:</label>
			<input type="text" name="firstName" size="50px" value="" />
			<label id="label" for="lastname">Efternamn:</label>
			<input type="text" name="lastName" value="" size="50px" />
			<label id="label" for="email">E-post;</label>
			<input type="text" name="email" value="" size="50px" /><br /><br />
			<input type="submit" name="submitRegister" value="Registrera" />
		</form>
	</div>

HTMLTEXT;
	
	echo $output;

}


function printFrontText() {

	$output = <<<HTMLTEXT
	
	<div id="frontTextLeft">
		<p>Spela klassiska memoryspelet med dina vänner.<br /><br /><br />
		Logga in här eller skapa ett nytt konto genom att fylla i 
		dina uppgifter i registreringsformuläret.</p>
	</div>
	
	<div id="frontTextRight">
		<p>När du väl har loggat in kan du spela mot en person
		som sitter vid en annan dator.<br /><br /><br /> Vad väntar 
		du på, visa vad du går för. Let the game begin.</p>
	</div>
	
	<div id="dotLeft">
		<img src="images/siteimages/dot.png" />
	</div>
	
	<div id="dotRight">
		<img src="images/siteimages/dot.png" />
	</div>

HTMLTEXT;

	echo $output;
}





function confirmRegistration(){

	$output = <<<HTMLTEXT
	
	<div class="registerText">
	<p>Du har blivit registrerad. 
	<a class="pinkText" href="index.php">Logga in för att fortsätta</a></p>
	</div>

HTMLTEXT;

	echo $output;
}


function printLogedIn(){
	echo '<div>';
	echo '<p class="logedIn">Du är inloggad <br /> som ' . $_SESSION['username'] . '</p>';
	echo '<a class="logout" href="index.php?page=logout">Logga ut</a>';
	echo '<a href="index.php?page=main"><img class="homebutton" src="images/siteimages/home.png" border="0"></a>';
	echo '<img id="logo" src="images/siteimages/memorylogo.png">';

	echo '</div>';
}

function nr_of_files($dir){
	$nr = 0;
	$handle=opendir($dir);
	
	while(($file = readdir($handle))!==false){
		$system=explode(".",$file);
		if (substr($system[0],0,3)=="tn_" && preg_match("/JPG|JPEG|jpg|jpeg|png|PNG/",$system[1])) {

			$nr++;
		}
	}
	return $nr;
}

function printHeader() {

	echo '<div id="header">';
	printLogedIn();
	echo '</div>';
}






?>
